Querying Transaction Result on the Merchant Side
The merchant can query the transaction details using the transactionReference or paymentReference.
Only one identifier can be present in the request.
Endpoints
EAM transaction status query by transaction or payment reference:
POST {BaseURL}/v1/ofo/eam/query
If EAM is included in the paymentMethods array during the start call, this endpoint must be used. The EAM is generated immediately after opening the Online Payment Page (after redirect) and can be queried. Use this endpoint for EAM transaction status queries instead of the old onlinefizetes-v1/query-by-transaction-reference endpoint (the old one was deleted in January 2026). To migrate, only the PATH needs to be changed; for RTP queries, there is a different PATH.
RTP transaction status query by transaction reference only:
POST {BaseURL}/v1/ofo/rtp/query
If the paymentMethods array contains the RTP value during the start call, this endpoint must be used. For RTP payments, the buyer must provide their account number or secondary identifier, then click the "Send payment request" button. Only after this is the transaction created. It is important to note that after opening the redirect URL, further buyer interaction is required, so the transaction is not immediately available for query. Polling after opening the redirect URL will initially return a 404 HTTP status code.
Header:
| Field | Type | Description |
|---|---|---|
Signature | string (hex) | HMAC signature generated as described above |
X-Request-ID | string (uuid) | Unique call identifier assigned by the merchant in UUID format, identifying the specific call |
X-Correlation-ID | string (uuid) | Unique session identifier assigned by the merchant in UUID format, identifying the entire session |
Body:
| Field | Type | Description |
|---|---|---|
idempotencyKey | string (uuid) | Unique code in UUID format assigned by the merchant |
technicalUserId | string | Technical identifier of the API user (e.g. 10234) |
transactionReference | string | Unique transaction identifier code provided in the payment start call |
paymentReference | string | Payment identifier received from the aggregator, only usable for EAM transaction queries at the eam/query endpoint |
timestamp | string | Timestamp of request assembly in datetimeoffset format (e.g. 2024-10-04T14:23:45Z) |
{
"idempotencyKey": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"technicalUserId": "string",
"transactionReference": "string",
"timestamp": "2024-10-15T10:14:26.121Z"
}
{
"salt": "TzRxZ+VpvtSv0WAH/OUCe6FBjNwhGqIevYXTjEHTv2s=",
"status": "EXPIRED"
}
The status field can have the following values:
| Status | Description |
|---|---|
RECEIVED | A received, validated, error-free request gets RECEIVED status; this initial status is created when a new payment (URL) is created |
CANCELLED | The beneficiary cancelled the EAM. Only an EAM whose payment has not yet been completed can be cancelled. |
PAYMENT_ATTEMPTED | The payment initiation was rejected but can be retried. The changed status indicates that a payment attempt was made previously. (Scanning the QR code in a banking application does not count as an attempt.) |
ACCEPTED | The instant transfer was completed successfully, the requested amount has arrived on the beneficiary's account. |
EXPIRED | No status change occurred within the specified expiry time, so the payment status changes to EXPIRED. |
REJECTED | The transaction was rejected due to validation issues, so the payment was not completed. |